home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1999 August / SGI Freeware 1999 August.iso / dist / fw_perl.idb / usr / freeware / catman / u_man / cat1 / perl5004delta.Z / perl5004delta
Encoding:
Text File  |  1998-10-28  |  83.9 KB  |  2,179 lines

  1.  
  2.  
  3.  
  4.      PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))
  5.  
  6.  
  7.  
  8.      NNNNAAAAMMMMEEEE
  9.       perldelta - what's new for perl5.004
  10.  
  11.      DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  12.       This document    describes differences between the 5.003
  13.       release (as documented in _P_r_o_g_r_a_m_m_i_n_g    _P_e_r_l, second
  14.       edition--the Camel Book) and this one.
  15.  
  16.      SSSSuuuuppppppppoooorrrrtttteeeedddd EEEEnnnnvvvviiiirrrroooonnnnmmmmeeeennnnttttssss
  17.       Perl5.004 builds out of the box on Unix, Plan    9, LynxOS,
  18.       VMS, OS/2, QNX, AmigaOS, and Windows NT.  Perl runs on
  19.       Windows 95 as    well, but it cannot be built there, for    lack
  20.       of a reasonable command interpreter.
  21.  
  22.      CCCCoooorrrreeee CCCChhhhaaaannnnggggeeeessss
  23.       Most importantly, many bugs were fixed, including several
  24.       security problems.  See the _C_h_a_n_g_e_s file in the distribution
  25.       for details.
  26.  
  27.       LLLLiiiisssstttt aaaassssssssiiiiggggnnnnmmmmeeeennnntttt ttttoooo %%%%EEEENNNNVVVV works
  28.  
  29.       %ENV = () and    %ENV = @list now work as expected (except on
  30.       VMS where it generates a fatal error).
  31.  
  32.       """"CCCCaaaannnn''''tttt llllooooccccaaaatttteeee    FFFFoooooooo....ppppmmmm iiiinnnn @@@@IIIINNNNCCCC"    error now lists    @INC
  33.  
  34.       CCCCoooommmmppppiiiillllaaaattttiiiioooonnnn ooooppppttttiiiioooonnnn:::: BBBBiiiinnnnaaaarrrryyyy ccccoooommmmppppaaaattttiiiibbbbiiiilllliiiittttyyyy wwwwiiiitttthhhh    5555....000000003333
  35.  
  36.       There    is a new Configure question that asks if you want to
  37.       maintain binary compatibility    with Perl 5.003.  If you
  38.       choose binary    compatibility, you do not have to recompile
  39.       your extensions, but you might have symbol conflicts if you
  40.       embed    Perl in    another    application, just as in    the 5.003
  41.       release.  By default,    binary compatibility is    preserved at
  42.       the expense of symbol    table pollution.
  43.  
  44.       $$$$PPPPEEEERRRRLLLL5555OOOOPPPPTTTT environment    variable
  45.  
  46.       You may now put Perl options in the $PERL5OPT    environment
  47.       variable.  Unless Perl is running with taint checks, it will
  48.       interpret this variable as if    its contents had appeared on a
  49.       "#!perl" line    at the beginning of your script, except    that
  50.       hyphens are optional.     PERL5OPT may only be used to set the
  51.       following switches: ----[[[[DDDDIIIIMMMMUUUUddddmmmmwwww]]]].
  52.  
  53.       LLLLiiiimmmmiiiittttaaaattttiiiioooonnnnssss oooonnnn ----MMMM, ----mmmm, and ----TTTT    options
  54.  
  55.       The -M and -m    options    are no longer allowed on the #!    line
  56.       of a script.    If a script needs a module, it should invoke
  57.       it with the use pragma.
  58.  
  59.       The ----TTTT option    is also    forbidden on the #! line of a script,
  60.  
  61.  
  62.  
  63.      Page 1                        (printed 10/23/98)
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.      PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))
  71.  
  72.  
  73.  
  74.       unless it was    present    on the Perl command line.  Due to the
  75.       way #!  works, this usually means that ----TTTT must be in the
  76.       first    argument.  Thus:
  77.  
  78.           #!/usr/bin/perl -T -w
  79.  
  80.       will probably    work for an executable script invoked as
  81.       scriptname, while:
  82.  
  83.           #!/usr/bin/perl -w -T
  84.  
  85.       will probably    fail under the same conditions.     (Non-Unix
  86.       systems will probably    not follow this    rule.)    But perl
  87.       scriptname is    guaranteed to fail, since then there is    no
  88.       chance of ----TTTT being found on the command line before it is
  89.       found    on the #! line.
  90.  
  91.       MMMMoooorrrreeee pppprrrreeeecccciiiisssseeee wwwwaaaarrrrnnnniiiinnnnggggssss
  92.  
  93.       If you removed the ----wwww    option from your Perl 5.003 scripts
  94.       because it made Perl too verbose, we recommend that you try
  95.       putting it back when you upgrade to Perl 5.004.  Each    new
  96.       perl version tends to    remove some undesirable    warnings,
  97.       while    adding new warnings that may catch bugs    in your
  98.       scripts.
  99.  
  100.       DDDDeeeepppprrrreeeeccccaaaatttteeeedddd:::: IIIInnnnhhhheeeerrrriiiitttteeeedddd    AAAAUUUUTTTTOOOOLLLLOOOOAAAADDDD for non-methods
  101.  
  102.       Before Perl 5.004, AUTOLOAD functions    were looked up as
  103.       methods (using the @ISA hierarchy), even when    the function
  104.       to be    autoloaded was called as a plain function (e.g.
  105.       Foo::bar()), not a method (e.g. Foo->bar() or    $obj->bar()).
  106.  
  107.       Perl 5.005 will use method lookup only for methods'
  108.       AUTOLOADs.  However, there is    a significant base of existing
  109.       code that may    be using the old behavior.  So,    as an interim
  110.       step,    Perl 5.004 issues an optional warning when a non-
  111.       method uses an inherited AUTOLOAD.
  112.  
  113.       The simple rule is:  Inheritance will    not work when
  114.       autoloading non-methods.  The    simple fix for old code    is:
  115.       In any module    that used to depend on inheriting AUTOLOAD for
  116.       non-methods from a base class    named BaseClass, execute
  117.       *AUTOLOAD = \&BaseClass::AUTOLOAD during startup.
  118.  
  119.       PPPPrrrreeeevvvviiiioooouuuussssllllyyyy ddddeeeepppprrrreeeeccccaaaatttteeeedddd    %%%%OOOOVVVVEEEERRRRLLLLOOOOAAAADDDD is no    longer usable
  120.  
  121.       Using    %OVERLOAD to define overloading    was deprecated in
  122.       5.003.  Overloading is now defined using the overload
  123.       pragma. %OVERLOAD is still used internally but should    not be
  124.       used by Perl scripts.    See the    _o_v_e_r_l_o_a_d manpage for more
  125.       details.
  126.  
  127.  
  128.  
  129.      Page 2                        (printed 10/23/98)
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.      PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))
  137.  
  138.  
  139.  
  140.       SSSSuuuubbbbrrrroooouuuuttttiiiinnnneeee aaaarrrrgggguuuummmmeeeennnnttttssss ccccrrrreeeeaaaatttteeeedddd oooonnnnllllyyyy wwwwhhhheeeennnn tttthhhheeeeyyyy''''rrrreeee mmmmooooddddiiiiffffiiiieeeedddd
  141.  
  142.       In Perl 5.004, nonexistent array and hash elements used as
  143.       subroutine parameters    are brought into existence only    if
  144.       they are actually assigned to    (via @_).
  145.  
  146.       Earlier versions of Perl vary    in their handling of such
  147.       arguments.  Perl versions 5.002 and 5.003 always brought
  148.       them into existence.    Perl versions 5.000 and    5.001 brought
  149.       them into existence only if they were    not the    first argument
  150.       (which was almost certainly a    bug).  Earlier versions    of
  151.       Perl never brought them into existence.
  152.  
  153.       For example, given this code:
  154.  
  155.            undef @a; undef %a;
  156.            sub show    { print    $_[0] };
  157.            sub change { $_[0]++ };
  158.            show($a[2]);
  159.            change($a{b});
  160.  
  161.       After    this code executes in Perl 5.004, $a{b}    exists but
  162.       $a[2]    does not.  In Perl 5.002 and 5.003, both $a{b} and
  163.       $a[2]    would have existed (but    $a[2]'s    value would have been
  164.       undefined).
  165.  
  166.       GGGGrrrroooouuuupppp    vvvveeeeccccttttoooorrrr cccchhhhaaaannnnggggeeeeaaaabbbblllleeee wwwwiiiitttthhhh $$$$))))
  167.  
  168.       The $) special variable has always (well, in Perl 5, at
  169.       least) reflected not only the    current    effective group, but
  170.       also the group list as returned by the getgroups() C
  171.       function (if there is    one).  However,    until this release,
  172.       there    has not    been a way to call the setgroups() C function
  173.       from Perl.
  174.  
  175.       In Perl 5.004, assigning to $) is exactly symmetrical    with
  176.       examining it:    The first number in its    string value is    used
  177.       as the effective gid;    if there are any numbers after the
  178.       first    one, they are passed to    the setgroups()    C function (if
  179.       there    is one).
  180.  
  181.       FFFFiiiixxxxeeeedddd    ppppaaaarrrrssssiiiinnnngggg    ooooffff $$$$$$$$<<<<ddddiiiiggggiiiitttt>>>>,,,, &&&&$$$$<<<<ddddiiiiggggiiiitttt>>>>,,,, eeeettttcccc....
  182.  
  183.       Perl versions    before 5.004 misinterpreted any    type marker
  184.       followed by "$" and a    digit.    For example, "$$0" was
  185.       incorrectly taken to mean "${$}0" instead of "${$0}".     This
  186.       bug is (mostly) fixed    in Perl    5.004.
  187.  
  188.       However, the developers of Perl 5.004    could not fix this bug
  189.       completely, because at least two widely-used modules depend
  190.       on the old meaning of    "$$0" in a string.  So Perl 5.004
  191.       still    interprets "$$<digit>" in the old (broken) way inside
  192.  
  193.  
  194.  
  195.      Page 3                        (printed 10/23/98)
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.      PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))
  203.  
  204.  
  205.  
  206.       strings; but it generates this message as a warning.    And in
  207.       Perl 5.005, this special treatment will cease.
  208.  
  209.       FFFFiiiixxxxeeeedddd    llllooooccccaaaalllliiiizzzzaaaattttiiiioooonnnn ooooffff    $$$$<<<<ddddiiiiggggiiiitttt>>>>,,,, $$$$&&&&,,,, eeeettttcccc....
  210.  
  211.       Perl versions    before 5.004 did not always properly localize
  212.       the regex-related special variables.    Perl 5.004 does
  213.       localize them, as the    documentation has always said it
  214.       should.  This    may result in $1, $2, etc. no longer being set
  215.       where    existing programs use them.
  216.  
  217.       NNNNoooo rrrreeeesssseeeettttttttiiiinnnngggg ooooffff $$$$.... oooonnnn    iiiimmmmpppplllliiiicccciiiitttt cccclllloooosssseeee
  218.  
  219.       The documentation for    Perl 5.0 has always stated that    $. is
  220.       _n_o_t reset when an already-open file handle is    reopened with
  221.       no intervening call to close.     Due to    a bug, perl versions
  222.       5.000    through    5.003 _d_i_d reset    $. under that circumstance;
  223.       Perl 5.004 does not.
  224.  
  225.       wwwwaaaannnnttttaaaarrrrrrrraaaayyyy may    return undef
  226.  
  227.       The wantarray    operator returns true if a subroutine is
  228.       expected to return a list, and false otherwise.  In Perl
  229.       5.004, wantarray can also return the undefined value if a
  230.       subroutine's return value will not be    used at    all, which
  231.       allows subroutines to    avoid a    time-consuming calculation of
  232.       a return value if it isn't going to be used.
  233.  
  234.       eeeevvvvaaaallll EEEEXXXXPPPPRRRR determines value of    EXPR in    scalar context
  235.  
  236.       Perl (version    5) used    to determine the value of EXPR
  237.       inconsistently, sometimes incorrectly    using the surrounding
  238.       context for the determination.  Now, the value of EXPR
  239.       (before being    parsed by eval)    is always determined in    a
  240.       scalar context.  Once    parsed,    it is executed as before, by
  241.       providing the    context    that the scope surrounding the eval
  242.       provided.  This change makes the behavior Perl4 compatible,
  243.       besides fixing bugs resulting    from the inconsistent
  244.       behavior.  This program:
  245.  
  246.           @a = qw(time now is time);
  247.           print eval @a;
  248.           print '|', scalar    eval @a;
  249.  
  250.       used to print    something like "timenowis881399109|4", but now
  251.       (and in perl4) prints    "4|4".
  252.  
  253.       CCCChhhhaaaannnnggggeeeessss ttttoooo ttttaaaaiiiinnnnttttiiiinnnngggg cccchhhheeeecccckkkkssss
  254.  
  255.       A bug    in previous versions may have failed to    detect some
  256.       insecure conditions when taint checks    are turned on.    (Taint
  257.       checks are used in setuid or setgid scripts, or when
  258.  
  259.  
  260.  
  261.      Page 4                        (printed 10/23/98)
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.      PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))
  269.  
  270.  
  271.  
  272.       explicitly turned on with the    -T invocation option.)
  273.       Although it's    unlikely, this may cause a previously-working
  274.       script to now    fail --    which should be    construed as a
  275.       blessing, since that indicates a potentially-serious
  276.       security hole    was just plugged.
  277.  
  278.       The new restrictions when tainting include:
  279.  
  280.       No glob() or <*>
  281.            These operators may spawn the C shell (csh), which
  282.            cannot be made safe.  This restriction will be lifted
  283.            in a future version of Perl when    globbing is
  284.            implemented without the use of an external program.
  285.  
  286.       No spawning if tainted $CDPATH, $ENV,    $BASH_ENV
  287.            These environment variables may alter the behavior of
  288.            spawned programs    (especially shells) in ways that
  289.            subvert security.  So now they are treated as
  290.            dangerous, in the manner    of $IFS    and $PATH.
  291.  
  292.       No spawning if tainted $TERM doesn't look like a terminal name
  293.            Some termcap libraries do unsafe    things with $TERM.
  294.            However,    it would be unnecessarily harsh    to treat all
  295.            $TERM values as unsafe, since only shell    metacharacters
  296.            can cause trouble in $TERM.  So a tainted $TERM is
  297.            considered to be    safe if    it contains only
  298.            alphanumerics, underscores, dashes, and colons, and
  299.            unsafe if it contains other characters (including
  300.            whitespace).
  301.  
  302.       NNNNeeeewwww OOOOppppccccooooddddeeee mmmmoooodddduuuulllleeee aaaannnndddd    rrrreeeevvvviiiisssseeeedddd    SSSSaaaaffffeeee mmmmoooodddduuuulllleeee
  303.  
  304.       A new    Opcode module supports the creation, manipulation and
  305.       application of opcode    masks.    The revised Safe module    has a
  306.       new API and is implemented using the new Opcode module.
  307.       Please read the new Opcode and Safe documentation.
  308.  
  309.       EEEEmmmmbbbbeeeeddddddddiiiinnnngggg iiiimmmmpppprrrroooovvvveeeemmmmeeeennnnttttssss
  310.  
  311.       In older versions of Perl it was not possible    to create more
  312.       than one Perl    interpreter instance inside a single process
  313.       without leaking like a sieve and/or crashing.     The bugs that
  314.       caused this behavior have all    been fixed.  However, you
  315.       still    must take care when embedding Perl in a    C program.
  316.       See the updated perlembed manpage for    tips on    how to manage
  317.       your interpreters.
  318.  
  319.       IIIInnnntttteeeerrrrnnnnaaaallll cccchhhhaaaannnnggggeeee:::: FFFFiiiilllleeeeHHHHaaaannnnddddlllleeee ccccllllaaaassssssss bbbbaaaasssseeeedddd oooonnnn IIIIOOOO::::::::**** ccccllllaaaasssssssseeeessss
  320.  
  321.       File handles are now stored internally as type IO::Handle.
  322.       The FileHandle module    is still supported for backwards
  323.       compatibility, but it    is now merely a    front end to the IO::*
  324.  
  325.  
  326.  
  327.      Page 5                        (printed 10/23/98)
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.      PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))
  335.  
  336.  
  337.  
  338.       modules -- specifically, IO::Handle, IO::Seekable, and
  339.       IO::File.  We    suggest, but do    not require, that you use the
  340.       IO::*    modules    in new code.
  341.  
  342.       In harmony with this change, *GLOB{FILEHANDLE} is now    just a
  343.       backward-compatible synonym for *GLOB{IO}.
  344.  
  345.       IIIInnnntttteeeerrrrnnnnaaaallll cccchhhhaaaannnnggggeeee:::: PPPPeeeerrrrllllIIIIOOOO aaaabbbbssssttttrrrraaaaccccttttiiiioooonnnn iiiinnnntttteeeerrrrffffaaaacccceeee
  346.  
  347.       It is    now possible to    build Perl with    AT&T's sfio IO package
  348.       instead of stdio.  See the _p_e_r_l_a_p_i_o manpage for more
  349.       details, and the _I_N_S_T_A_L_L file    for how    to use it.
  350.  
  351.       NNNNeeeewwww aaaannnndddd cccchhhhaaaannnnggggeeeedddd ssssyyyynnnnttttaaaaxxxx
  352.  
  353.       $coderef->(PARAMS)
  354.            A subroutine reference may now be suffixed with an
  355.            arrow and a (possibly empty) parameter list.  This
  356.            syntax denotes a    call of    the referenced subroutine,
  357.            with the    given parameters (if any).
  358.  
  359.            This new    syntax follows the pattern of $hashref->{FOO}
  360.            and $aryref->[$foo]: You    may now    write &$subref($foo)
  361.            as $subref->($foo).  All    of these arrow terms may be
  362.            chained;    thus, &{$table->{FOO}}($bar) may now be
  363.            written $table->{FOO}->($bar).
  364.  
  365.       NNNNeeeewwww aaaannnndddd cccchhhhaaaannnnggggeeeedddd bbbbuuuuiiiillllttttiiiinnnn ccccoooonnnnssssttttaaaannnnttttssss
  366.  
  367.       __PACKAGE__
  368.            The current package name    at compile time, or the
  369.            undefined value if there    is no current package (due to
  370.            a package; directive).  Like __FILE__ and __LINE__,
  371.            __PACKAGE__ does    _n_o_t interpolate    into strings.
  372.  
  373.       NNNNeeeewwww aaaannnndddd cccchhhhaaaannnnggggeeeedddd bbbbuuuuiiiillllttttiiiinnnn vvvvaaaarrrriiiiaaaabbbblllleeeessss
  374.  
  375.       $^E  Extended    error message on some platforms.  (Also    known
  376.            as $EXTENDED_OS_ERROR if    you use    English).
  377.  
  378.       $^H  The current set of syntax checks    enabled    by use strict.
  379.            See the documentation of    strict for more    details.  Not
  380.            actually    new, but newly documented.  Because it is
  381.            intended    for internal use by Perl core components,
  382.            there is    no use English long name for this variable.
  383.  
  384.       $^M  By default, running out of memory it is not trappable.
  385.            However,    if compiled for    this, Perl may use the
  386.            contents    of $^M as an emergency pool after _d_i_e()ing
  387.            with this message.  Suppose that    your Perl were
  388.            compiled    with -DPERL_EMERGENCY_SBRK and used Perl's
  389.            malloc.    Then
  390.  
  391.  
  392.  
  393.      Page 6                        (printed 10/23/98)
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.      PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))
  401.  
  402.  
  403.  
  404.            $^M = 'a' x (1<<16);
  405.  
  406.            would allocate a    64K buffer for use when    in emergency.
  407.            See the _I_N_S_T_A_L_L file for    information on how to enable
  408.            this option.  As    a disincentive to casual use of    this
  409.            advanced    feature, there is no use English long name for
  410.            this variable.
  411.  
  412.       NNNNeeeewwww aaaannnndddd cccchhhhaaaannnnggggeeeedddd bbbbuuuuiiiillllttttiiiinnnn ffffuuuunnnnccccttttiiiioooonnnnssss
  413.  
  414.       delete on slices
  415.            This now    works.    (e.g. delete @ENV{'PATH', 'MANPATH'})
  416.  
  417.       flock
  418.            is now supported    on more    platforms, prefers fcntl to
  419.            lockf when emulating, and always    flushes    before
  420.            (un)locking.
  421.  
  422.       printf and sprintf
  423.            Perl now    implements these functions itself; it doesn't
  424.            use the C library function _s_p_r_i_n_t_f() any    more, except
  425.            for floating-point numbers, and even then only known
  426.            flags are allowed.  As a    result,    it is now possible to
  427.            know which conversions and flags    will work, and what
  428.            they will do.
  429.  
  430.            The new conversions in Perl's _s_p_r_i_n_t_f() are:
  431.  
  432.           %i   a synonym for %d
  433.           %p   a pointer (the address of the Perl value, in hexadecimal)
  434.           %n   special:    *stores* the number of characters output so far
  435.                into the    next variable in the parameter list
  436.  
  437.            The new flags that go between the % and the conversion
  438.            are:
  439.  
  440.           #    prefix octal with "0", hex with "0x"
  441.           h    interpret integer as C type "short" or "unsigned    short"
  442.           V    interpret integer as Perl's standard integer type
  443.  
  444.            Also, where a number would appear in the    flags, an
  445.            asterisk    ("*") may be used instead, in which case Perl
  446.            uses the    next item in the parameter list    as the given
  447.            number (that is,    as the field width or precision).  If
  448.            a field width obtained through "*" is negative, it has
  449.            the same    effect as the '-' flag:    left-justification.
  450.  
  451.            See the sprintf entry in    the _p_e_r_l_f_u_n_c manpage for a
  452.            complete    list of    conversion and flags.
  453.  
  454.       keys as an lvalue
  455.            As an lvalue, keys allows you to    increase the number of
  456.  
  457.  
  458.  
  459.      Page 7                        (printed 10/23/98)
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.      PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))
  467.  
  468.  
  469.  
  470.            hash buckets allocated for the given hash.  This    can
  471.            gain you    a measure of efficiency    if you know the    hash
  472.            is going    to get big.  (This is similar to pre-extending
  473.            an array    by assigning a larger number to    $#array.)  If
  474.            you say
  475.  
  476.            keys    %hash =    200;
  477.  
  478.            then %hash will have at least 200 buckets allocated for
  479.            it.  These buckets will be retained even    if you do
  480.            %hash = (); use undef %hash if you want to free the
  481.            storage while %hash is still in scope.  You can't
  482.            shrink the number of buckets allocated for the hash
  483.            using keys in this way (but you needn't worry about
  484.            doing this by accident, as trying has no    effect).
  485.  
  486.       my() in Control Structures
  487.            You can now use _m_y() (with or without the parentheses)
  488.            in the control expressions of control structures    such
  489.            as:
  490.  
  491.            while (defined(my $line = <>)) {
  492.                $line = lc $line;
  493.            } continue {
  494.                print $line;
  495.            }
  496.  
  497.            if ((my $answer = <STDIN>) =~ /^y(es)?$/i) {
  498.                user_agrees();
  499.            } elsif ($answer =~ /^n(o)?$/i) {
  500.                user_disagrees();
  501.            } else {
  502.                chomp $answer;
  503.                die "`$answer' is neither `yes' nor `no'";
  504.            }
  505.  
  506.            Also, you can declare a foreach loop control variable
  507.            as lexical by preceding it with the word    "my".  For
  508.            example,    in:
  509.  
  510.            foreach my $i (1, 2,    3) {
  511.                some_function();
  512.            }
  513.  
  514.            $i is a lexical variable, and the scope of $i extends
  515.            to the end of the loop, but not beyond it.
  516.  
  517.            Note that you still cannot use _m_y() on global
  518.            punctuation variables such as $_    and the    like.
  519.  
  520.       pack() and unpack()
  521.            A new format 'w'    represents a BER compressed integer
  522.  
  523.  
  524.  
  525.      Page 8                        (printed 10/23/98)
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.      PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))
  533.  
  534.  
  535.  
  536.            (as defined in ASN.1).  Its format is a sequence    of one
  537.            or more bytes, each of which provides seven bits    of the
  538.            total value, with the most significant first.  Bit
  539.            eight of    each byte is set, except for the last byte, in
  540.            which bit eight is clear.
  541.  
  542.            If 'p' or 'P' are given undef as    values,    they now
  543.            generate    a NULL pointer.
  544.  
  545.            Both _p_a_c_k() and _u_n_p_a_c_k()    now fail when their templates
  546.            contain invalid types.  (Invalid    types used to be
  547.            ignored.)
  548.  
  549.       sysseek()
  550.            The new _s_y_s_s_e_e_k() operator is a variant of _s_e_e_k() that
  551.            sets and    gets the file's    system read/write position,
  552.            using the _l_s_e_e_k(2) system call.    It is the only
  553.            reliable    way to seek before using _s_y_s_r_e_a_d() or
  554.            _s_y_s_w_r_i_t_e().  Its    return value is    the new    position, or
  555.            the undefined value on failure.
  556.  
  557.       use VERSION
  558.            If the first argument to    use is a number, it is treated
  559.            as a version number instead of a    module name.  If the
  560.            version of the Perl interpreter is less than VERSION,
  561.            then an error message is    printed    and Perl exits
  562.            immediately.  Because use occurs    at compile time, this
  563.            check happens immediately during    the compilation
  564.            process,    unlike require VERSION,    which waits until
  565.            runtime for the check.  This is often useful if you
  566.            need to check the current Perl version before useing
  567.            library modules which have changed in incompatible ways
  568.            from older versions of Perl.  (We try not to do this
  569.            more than we have to.)
  570.  
  571.       use Module VERSION LIST
  572.            If the VERSION argument is present between Module and
  573.            LIST, then the use will call the    VERSION    method in
  574.            class Module with the given version as an argument.
  575.            The default VERSION method, inherited from the
  576.            UNIVERSAL class,    croaks if the given version is larger
  577.            than the    value of the variable $Module::VERSION.     (Note
  578.            that there is not a comma after VERSION!)
  579.  
  580.            This version-checking mechanism is similar to the one
  581.            currently used in the Exporter module, but it is    faster
  582.            and can be used with modules that don't use the
  583.            Exporter.  It is    the recommended    method for new code.
  584.  
  585.       prototype(FUNCTION)
  586.            Returns the prototype of    a function as a    string (or
  587.            undef if    the function has no prototype).     FUNCTION is a
  588.  
  589.  
  590.  
  591.      Page 9                        (printed 10/23/98)
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.      PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))
  599.  
  600.  
  601.  
  602.            reference to or the name    of the function    whose
  603.            prototype you want to retrieve.    (Not actually new;
  604.            just never documented before.)
  605.  
  606.       srand
  607.            The default seed    for srand, which used to be time, has
  608.            been changed.  Now it's a heady mix of difficult-to-
  609.            predict system-dependent    values,    which should be
  610.            sufficient for most everyday purposes.
  611.  
  612.            Previous    to version 5.004, calling rand without first
  613.            calling srand would yield the same sequence of random
  614.            numbers on most or all machines.     Now, when perl    sees
  615.            that you're calling rand    and haven't yet    called srand,
  616.            it calls    srand with the default seed. You should    still
  617.            call srand manually if your code    might ever be run on a
  618.            pre-5.004 system, of course, or if you want a seed
  619.            other than the default.
  620.  
  621.       $_ as    Default
  622.            Functions documented in the Camel to default to $_ now
  623.            in fact do, and all those that do are so    documented in
  624.            the _p_e_r_l_f_u_n_c manpage.
  625.  
  626.       m//gc    does not reset search position on failure
  627.            The m//g    match iteration    construct has always reset its
  628.            target string's search position (which is visible
  629.            through the pos operator) when a    match fails; as    a
  630.            result, the next    m//g match after a failure starts
  631.            again at    the beginning of the string.  With Perl    5.004,
  632.            this reset may be disabled by adding the    "c" (for
  633.            "continue") modifier, i.e. m//gc.  This feature,    in
  634.            conjunction with    the \G zero-width assertion, makes it
  635.            possible    to chain matches together.  See    the _p_e_r_l_o_p
  636.            manpage and the _p_e_r_l_r_e manpage.
  637.  
  638.       m//x ignores whitespace before ?*+{}
  639.            The m//x    construct has always been intended to ignore
  640.            all unescaped whitespace.  However, before Perl 5.004,
  641.            whitespace had the effect of escaping repeat modifiers
  642.            like "*"    or "?";    for example, /a    *b/x was
  643.            (mis)interpreted    as /a\*b/x.  This bug has been fixed
  644.            in 5.004.
  645.  
  646.       nested sub{} closures    work now
  647.            Prior to    the 5.004 release, nested anonymous functions
  648.            didn't work right.  They    do now.
  649.  
  650.       formats work right on    changing lexicals
  651.            Just like anonymous functions that contain lexical
  652.            variables that change (like a lexical index variable
  653.            for a foreach loop), formats now    work properly.    For
  654.  
  655.  
  656.  
  657.      Page 10                        (printed 10/23/98)
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.      PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))
  665.  
  666.  
  667.  
  668.            example,    this silently failed before (printed only
  669.            zeros), but is fine now:
  670.  
  671.            my $i;
  672.            foreach $i (    1 .. 10    ) {
  673.                write;
  674.            }
  675.            format =
  676.                my i is @#
  677.                $i
  678.            .
  679.  
  680.            However,    it still fails (without    a warning) if the
  681.            foreach is within a subroutine:
  682.  
  683.            my $i;
  684.            sub foo {
  685.              foreach $i    ( 1 .. 10 ) {
  686.                write;
  687.              }
  688.            }
  689.            foo;
  690.            format =
  691.                my i is @#
  692.                $i
  693.            .
  694.  
  695.  
  696.       NNNNeeeewwww bbbbuuuuiiiillllttttiiiinnnn mmmmeeeetttthhhhooooddddssss
  697.  
  698.       The UNIVERSAL    package    automatically contains the following
  699.       methods that are inherited by    all other classes:
  700.  
  701.       isa(CLASS)
  702.            isa returns _t_r_u_e    if its object is blessed into a
  703.            subclass    of CLASS
  704.  
  705.            isa is also exportable and can be called    as a sub with
  706.            two arguments. This allows the ability to check what a
  707.            reference points    to. Example:
  708.  
  709.            use UNIVERSAL qw(isa);
  710.  
  711.            if(isa($ref,    'ARRAY')) {
  712.               ...
  713.            }
  714.  
  715.  
  716.       can(METHOD)
  717.            can checks to see if its    object has a method called
  718.            METHOD, if it does then a reference to the sub is
  719.            returned; if it does not    then _u_n_d_e_f is returned.
  720.  
  721.  
  722.  
  723.      Page 11                        (printed 10/23/98)
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730.      PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))
  731.  
  732.  
  733.  
  734.       VERSION( [NEED] )
  735.            VERSION returns the version number of the class
  736.            (package).  If the NEED argument    is given then it will
  737.            check that the current version (as defined by the
  738.            $VERSION    variable in the    given package) not less    than
  739.            NEED; it    will die if this is not    the case.  This    method
  740.            is normally called as a class method.  This method is
  741.            called automatically by the VERSION form    of use.
  742.  
  743.            use A 1.2 qw(some imported subs);
  744.            # implies:
  745.            A->VERSION(1.2);
  746.  
  747.  
  748.       NNNNOOOOTTTTEEEE::::    can directly uses Perl's internal code for method
  749.       lookup, and isa uses a very similar method and caching
  750.       strategy. This may cause strange effects if the Perl code
  751.       dynamically changes @ISA in any package.
  752.  
  753.       You may add other methods to the UNIVERSAL class via Perl or
  754.       XS code.  You    do not need to use UNIVERSAL in    order to make
  755.       these    methods    available to your program.  This is necessary
  756.       only if you wish to have isa available as a plain subroutine
  757.       in the current package.
  758.  
  759.       TTTTIIIIEEEEHHHHAAAANNNNDDDDLLLLEEEE nnnnoooowwww    ssssuuuuppppppppoooorrrrtttteeeedddd
  760.  
  761.       See the _p_e_r_l_t_i_e manpage for other kinds of _t_i_e()s.
  762.  
  763.       TIEHANDLE classname, LIST
  764.            This is the constructor for the class.  That means it
  765.            is expected to return an    object of some sort. The
  766.            reference can be    used to    hold some internal
  767.            information.
  768.  
  769.            sub TIEHANDLE {
  770.                print "<shout>\n";
  771.                my $i;
  772.                return bless \$i, shift;
  773.            }
  774.  
  775.  
  776.       PRINT    this, LIST
  777.            This method will    be triggered every time    the tied
  778.            handle is printed to.  Beyond its self reference    it
  779.            also expects the    list that was passed to    the print
  780.            function.
  781.  
  782.  
  783.  
  784.  
  785.  
  786.  
  787.  
  788.  
  789.      Page 12                        (printed 10/23/98)
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796.      PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))
  797.  
  798.  
  799.  
  800.            sub PRINT {
  801.                $r = shift;
  802.                $$r++;
  803.                return print join( $, =>    map {uc} @_), $\;
  804.            }
  805.  
  806.  
  807.       PRINTF this, LIST
  808.            This method will    be triggered every time    the tied
  809.            handle is printed to with the printf() function.
  810.            Beyond its self reference it also expects the format
  811.            and list    that was passed    to the printf function.
  812.  
  813.            sub PRINTF {
  814.                shift;
  815.              my $fmt = shift;
  816.                print sprintf($fmt, @_)."\n";
  817.            }
  818.  
  819.  
  820.       READ this LIST
  821.            This method will    be called when the handle is read from
  822.            via the read or sysread functions.
  823.  
  824.            sub READ {
  825.                $r = shift;
  826.                my($buf,$len,$offset) = @_;
  827.                print "READ called, \$buf=$buf, \$len=$len, \$offset=$offset";
  828.            }
  829.  
  830.  
  831.       READLINE this
  832.            This method will    be called when the handle is read
  833.            from. The method    should return undef when there is no
  834.            more data.
  835.  
  836.            sub READLINE    {
  837.                $r = shift;
  838.                return "PRINT called $$r    times\n"
  839.            }
  840.  
  841.  
  842.       GETC this
  843.            This method will    be called when the getc    function is
  844.            called.
  845.  
  846.            sub GETC { print "Don't GETC, Get Perl"; return "a";    }
  847.  
  848.  
  849.       DESTROY this
  850.            As with the other types of ties,    this method will be
  851.            called when the tied handle is about to be destroyed.
  852.  
  853.  
  854.  
  855.      Page 13                        (printed 10/23/98)
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862.      PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))
  863.  
  864.  
  865.  
  866.            This is useful for debugging and    possibly for cleaning
  867.            up.
  868.  
  869.            sub DESTROY {
  870.                print "</shout>\n";
  871.            }
  872.  
  873.  
  874.       MMMMaaaalllllllloooocccc eeeennnnhhhhaaaannnncccceeeemmmmeeeennnnttttssss
  875.  
  876.       If perl is compiled with the malloc included with the    perl
  877.       distribution (that is, if perl -V:d_mymalloc is 'define')
  878.       then you can print memory statistics at runtime by running
  879.       Perl thusly:
  880.  
  881.         env    PERL_DEBUG_MSTATS=2 perl your_script_here
  882.  
  883.       The value of 2 means to print    statistics after compilation
  884.       and on exit; with a value of 1, the statistics are printed
  885.       only on exit.     (If you want the statistics at    an arbitrary
  886.       time,    you'll need to install the optional module
  887.       Devel::Peek.)
  888.  
  889.       Three    new compilation    flags are recognized by    malloc.c.
  890.       (They    have no    effect if perl is compiled with    system
  891.       _m_a_l_l_o_c().)
  892.  
  893.       -DPERL_EMERGENCY_SBRK
  894.            If this macro is    defined, running out of    memory need
  895.            not be a    fatal error: a memory pool can allocated by
  896.            assigning to the    special    variable $^M.  See the section
  897.            on $^_M.
  898.  
  899.       -DPACK_MALLOC
  900.            Perl memory allocation is by bucket with    sizes close to
  901.            powers of two.  Because of these    malloc overhead    may be
  902.            big, especially for data    of size    exactly    a power    of
  903.            two.  If    PACK_MALLOC is defined,    perl uses a slightly
  904.            different algorithm for small allocations (up to    64
  905.            bytes long), which makes    it possible to have overhead
  906.            down to 1 byte for allocations which are    powers of two
  907.            (and appear quite often).
  908.  
  909.            Expected    memory savings (with 8-byte alignment in
  910.            alignbytes) is about 20%    for typical Perl usage.
  911.            Expected    slowdown due to    additional malloc overhead is
  912.            in fractions of a percent (hard to measure, because of
  913.            the effect of saved memory on speed).
  914.  
  915.       -DTWO_POT_OPTIMIZE
  916.            Similarly to PACK_MALLOC, this macro improves
  917.            allocations of data with    size close to a    power of two;
  918.  
  919.  
  920.  
  921.      Page 14                        (printed 10/23/98)
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928.      PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))
  929.  
  930.  
  931.  
  932.            but this    works for big allocations (starting with 16K
  933.            by default).  Such allocations are typical for big
  934.            hashes and special-purpose scripts, especially image
  935.            processing.
  936.  
  937.            On recent systems, the fact that    perl requires 2M from
  938.            system for 1M allocation    will not affect    speed of
  939.            execution, since    the tail of such a chunk is not    going
  940.            to be touched (and thus will not    require    real memory).
  941.            However,    it may result in a premature out-of-memory
  942.            error.  So if you will be manipulating very large
  943.            blocks with sizes close to powers of two, it would be
  944.            wise to define this macro.
  945.  
  946.            Expected    saving of memory is 0-100% (100% in
  947.            applications which require most memory in such 2**n
  948.            chunks);    expected slowdown is negligible.
  949.  
  950.       MMMMiiiisssscccceeeellllllllaaaannnneeeeoooouuuussss    eeeeffffffffiiiicccciiiieeeennnnccccyyyy eeeennnnhhhhaaaannnncccceeeemmmmeeeennnnttttssss
  951.  
  952.       Functions that have an empty prototype and that do nothing
  953.       but return a fixed value are now inlined (e.g. sub PI    () {
  954.       3.14159 }).
  955.  
  956.       Each unique hash key is only allocated once, no matter how
  957.       many hashes have an entry with that key.  So even if you
  958.       have 100 copies of the same hash, the    hash keys never    have
  959.       to be    reallocated.
  960.  
  961.      SSSSuuuuppppppppoooorrrrtttt ffffoooorrrr MMMMoooorrrreeee OOOOppppeeeerrrraaaattttiiiinnnngggg    SSSSyyyysssstttteeeemmmmssss
  962.       Support for the following operating systems is new in    Perl
  963.       5.004.
  964.  
  965.       WWWWiiiinnnn33332222
  966.  
  967.       Perl 5.004 now includes support for building a "native" perl
  968.       under    Windows    NT, using the Microsoft    Visual C++ compiler
  969.       (versions 2.0    and above) or the Borland C++ compiler
  970.       (versions 5.02 and above).  The resulting perl can be    used
  971.       under    Windows    95 (if it is installed in the same directory
  972.       locations as it got installed    in Windows NT).     This port
  973.       includes support for perl extension building tools like the
  974.       _M_a_k_e_M_a_k_e_r manpage and    the _h_2_x_s manpage, so that many
  975.       extensions available on the Comprehensive Perl Archive
  976.       Network (CPAN) can now be readily built under    Windows    NT.
  977.       See http://www.perl.com/ for more information    on CPAN    and
  978.       _R_E_A_D_M_E._w_i_n_3_2 in the perl distribution    for more details on
  979.       how to get started with building this    port.
  980.  
  981.       There    is also    support    for building perl under    the Cygwin32
  982.       environment.    Cygwin32 is a set of GNU tools that make it
  983.       possible to compile and run many UNIX    programs under Windows
  984.  
  985.  
  986.  
  987.      Page 15                        (printed 10/23/98)
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994.      PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))
  995.  
  996.  
  997.  
  998.       NT by    providing a mostly UNIX-like interface for compilation
  999.       and execution.  See _R_E_A_D_M_E._c_y_g_w_i_n_3_2 in the perl distribution
  1000.       for more details on this port    and how    to obtain the Cygwin32
  1001.       toolkit.
  1002.  
  1003.       PPPPllllaaaannnn 9999
  1004.  
  1005.       See _R_E_A_D_M_E._p_l_a_n_9 in the perl distribution.
  1006.  
  1007.       QQQQNNNNXXXX
  1008.  
  1009.       See _R_E_A_D_M_E._q_n_x in the    perl distribution.
  1010.  
  1011.       AAAAmmmmiiiiggggaaaaOOOOSSSS
  1012.  
  1013.       See _R_E_A_D_M_E._a_m_i_g_a_o_s in    the perl distribution.
  1014.  
  1015.      PPPPrrrraaaaggggmmmmaaaattttaaaa
  1016.       Six new pragmatic modules exist:
  1017.  
  1018.       use autouse MODULE =>    qw(sub1    sub2 sub3)
  1019.            Defers require MODULE until someone calls one of    the
  1020.            specified subroutines (which must be exported by
  1021.            MODULE).     This pragma should be used with caution, and
  1022.            only when necessary.
  1023.  
  1024.       use blib
  1025.  
  1026.       use blib 'dir'
  1027.            Looks for MakeMaker-like    '_b_l_i_b' directory structure
  1028.            starting    in _d_i_r (or current directory) and working back
  1029.            up to five levels of parent directories.
  1030.  
  1031.            Intended    for use    on command line    with ----MMMM    option as a
  1032.            way of testing arbitrary    scripts    against    an uninstalled
  1033.            version of a package.
  1034.  
  1035.       use constant NAME => VALUE
  1036.            Provides    a convenient interface for creating compile-
  1037.            time constants, See the section on _C_o_n_s_t_a_n_t _F_u_n_c_t_i_o_n_s
  1038.            in the _p_e_r_l_s_u_b manpage.
  1039.  
  1040.       use locale
  1041.            Tells the compiler to enable (or    disable) the use of
  1042.            POSIX locales for builtin operations.
  1043.  
  1044.            When use    locale is in effect, the current LC_CTYPE
  1045.            locale is used for regular expressions and case
  1046.            mapping;    LC_COLLATE for string ordering;    and LC_NUMERIC
  1047.            for numeric formating in    printf and sprintf (but    nnnnooootttt in
  1048.            print).    LC_NUMERIC is always used in write, since
  1049.            lexical scoping of formats is problematic at best.
  1050.  
  1051.  
  1052.  
  1053.      Page 16                        (printed 10/23/98)
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.      PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))
  1061.  
  1062.  
  1063.  
  1064.            Each use    locale or no locale affects statements to the
  1065.            end of the enclosing BLOCK or, if not inside a BLOCK,
  1066.            to the end of the current file.    Locales    can be
  1067.            switched    and queried with _P_O_S_I_X::_s_e_t_l_o_c_a_l_e().
  1068.  
  1069.            See the _p_e_r_l_l_o_c_a_l_e manpage for more information.
  1070.  
  1071.       use ops
  1072.            Disable unsafe opcodes, or any named opcodes, when
  1073.            compiling Perl code.
  1074.  
  1075.       use vmsish
  1076.            Enable VMS-specific language features.  Currently,
  1077.            there are three VMS-specific features available:
  1078.            'status', which makes $?    and system return genuine VMS
  1079.            status values instead of    emulating POSIX; 'exit', which
  1080.            makes exit take a genuine VMS status value instead of
  1081.            assuming    that exit 1 is an error; and 'time', which
  1082.            makes all times relative    to the local time zone,    in the
  1083.            VMS tradition.
  1084.  
  1085.      MMMMoooodddduuuulllleeeessss
  1086.       RRRReeeeqqqquuuuiiiirrrreeeedddd UUUUppppddddaaaatttteeeessss
  1087.  
  1088.       Though Perl 5.004 is compatible with almost all modules that
  1089.       work with Perl 5.003,    there are a few    exceptions:
  1090.  
  1091.           Module   Required    Version    for Perl 5.004
  1092.           ------   -------------------------------
  1093.           Filter   Filter-1.12
  1094.           LWP      libwww-perl-5.08
  1095.           Tk       Tk400.202 (-w makes noise)
  1096.  
  1097.       Also,    the majordomo mailing list program, version 1.94.1,
  1098.       doesn't work with Perl 5.004 (nor with perl 4), because it
  1099.       executes an invalid regular expression.  This    bug is fixed
  1100.       in majordomo version 1.94.2.
  1101.  
  1102.       IIIInnnnssssttttaaaallllllllaaaattttiiiioooonnnn ddddiiiirrrreeeeccccttttoooorrrriiiieeeessss
  1103.  
  1104.       The _i_n_s_t_a_l_l_p_e_r_l script now places the    Perl source files for
  1105.       extensions in    the architecture-specific library directory,
  1106.       which    is where the shared libraries for extensions have
  1107.       always been.    This change is intended    to allow
  1108.       administrators to keep the Perl 5.004    library    directory
  1109.       unchanged from a previous version, without running the risk
  1110.       of binary incompatibility between extensions'    Perl source
  1111.       and shared libraries.
  1112.  
  1113.  
  1114.  
  1115.  
  1116.  
  1117.  
  1118.  
  1119.      Page 17                        (printed 10/23/98)
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126.      PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))
  1127.  
  1128.  
  1129.  
  1130.       MMMMoooodddduuuulllleeee iiiinnnnffffoooorrrrmmmmaaaattttiiiioooonnnn ssssuuuummmmmmmmaaaarrrryyyy
  1131.  
  1132.       Brand    new modules, arranged by topic rather than strictly
  1133.       alphabetically:
  1134.  
  1135.           CGI.pm           Web server interface    ("Common Gateway Interface")
  1136.           CGI/Apache.pm       Support for Apache's    Perl module
  1137.           CGI/Carp.pm       Log server errors with helpful context
  1138.           CGI/Fast.pm       Support for FastCGI (persistent server process)
  1139.           CGI/Push.pm       Support for server push
  1140.           CGI/Switch.pm       Simple interface for    multiple server    types
  1141.  
  1142.           CPAN           Interface to    Comprehensive Perl Archive Network
  1143.           CPAN::FirstTime       Utility for creating    CPAN configuration file
  1144.           CPAN::Nox           Runs    CPAN while avoiding compiled extensions
  1145.  
  1146.           IO.pm           Top-level interface to IO::*    classes
  1147.           IO/File.pm       IO::File extension Perl module
  1148.           IO/Handle.pm       IO::Handle extension    Perl module
  1149.           IO/Pipe.pm       IO::Pipe extension Perl module
  1150.           IO/Seekable.pm       IO::Seekable    extension Perl module
  1151.           IO/Select.pm       IO::Select extension    Perl module
  1152.           IO/Socket.pm       IO::Socket extension    Perl module
  1153.  
  1154.           Opcode.pm           Disable named opcodes when compiling    Perl code
  1155.  
  1156.           ExtUtils/Embed.pm       Utilities for embedding Perl    in C programs
  1157.           ExtUtils/testlib.pm  Fixes up @INC to use    just-built extension
  1158.  
  1159.           FindBin.pm       Find    path of    currently executing program
  1160.  
  1161.           Class/Struct.pm       Declare struct-like datatypes as Perl classes
  1162.           File/stat.pm       By-name interface to    Perl's builtin stat
  1163.           Net/hostent.pm       By-name interface to    Perl's builtin gethost*
  1164.           Net/netent.pm       By-name interface to    Perl's builtin getnet*
  1165.           Net/protoent.pm       By-name interface to    Perl's builtin getproto*
  1166.           Net/servent.pm       By-name interface to    Perl's builtin getserv*
  1167.           Time/gmtime.pm       By-name interface to    Perl's builtin gmtime
  1168.           Time/localtime.pm       By-name interface to    Perl's builtin localtime
  1169.           Time/tm.pm       Internal object for Time::{gm,local}time
  1170.           User/grent.pm       By-name interface to    Perl's builtin getgr*
  1171.           User/pwent.pm       By-name interface to    Perl's builtin getpw*
  1172.  
  1173.           Tie/RefHash.pm       Base    class for tied hashes with references as keys
  1174.  
  1175.           UNIVERSAL.pm       Base    class for *ALL*    classes
  1176.  
  1177.  
  1178.       FFFFccccnnnnttttllll
  1179.  
  1180.       New constants    in the existing    Fcntl modules are now
  1181.       supported, provided that your    operating system happens to
  1182.  
  1183.  
  1184.  
  1185.      Page 18                        (printed 10/23/98)
  1186.  
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192.      PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))
  1193.  
  1194.  
  1195.  
  1196.       support them:
  1197.  
  1198.           F_GETOWN F_SETOWN
  1199.           O_ASYNC O_DEFER O_DSYNC O_FSYNC O_SYNC
  1200.           O_EXLOCK O_SHLOCK
  1201.  
  1202.       These    constants are intended for use with the    Perl operators
  1203.       _s_y_s_o_p_e_n() and    _f_c_n_t_l()    and the    basic database modules like
  1204.       SDBM_File.  For the exact meaning of these and other Fcntl
  1205.       constants please refer to your operating system's
  1206.       documentation    for _f_c_n_t_l() and    _o_p_e_n().
  1207.  
  1208.       In addition, the Fcntl module    now provides these constants
  1209.       for use with the Perl    operator _f_l_o_c_k():
  1210.  
  1211.           LOCK_SH LOCK_EX LOCK_NB LOCK_UN
  1212.  
  1213.       These    constants are defined in all environments (because
  1214.       where    there is no _f_l_o_c_k() system call, Perl emulates it).
  1215.       However, for historical reasons, these constants are not
  1216.       exported unless they are explicitly requested    with the
  1217.       ":flock" tag (e.g. use Fcntl ':flock').
  1218.  
  1219.       IIIIOOOO
  1220.  
  1221.       The IO module    provides a simple mechanism to load all    of the
  1222.       IO modules at    one go.     Currently this    includes:
  1223.  
  1224.            IO::Handle
  1225.            IO::Seekable
  1226.            IO::File
  1227.            IO::Pipe
  1228.            IO::Socket
  1229.  
  1230.       For more information on any of these modules,    please see its
  1231.       respective documentation.
  1232.  
  1233.       MMMMaaaatttthhhh::::::::CCCCoooommmmpppplllleeeexxxx
  1234.  
  1235.       The Math::Complex module has been totally rewritten, and now
  1236.       supports more    operations.  These are overloaded:
  1237.  
  1238.            + - * / ** <=> neg ~ abs    sqrt exp log sin cos atan2 "" (stringify)
  1239.  
  1240.       And these functions are now exported:
  1241.  
  1242.  
  1243.  
  1244.  
  1245.  
  1246.  
  1247.  
  1248.  
  1249.  
  1250.  
  1251.      Page 19                        (printed 10/23/98)
  1252.  
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258.      PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))
  1259.  
  1260.  
  1261.  
  1262.           pi i Re Im arg
  1263.           log10 logn ln cbrt root
  1264.           tan
  1265.           csc sec cot
  1266.           asin acos    atan
  1267.           acsc asec    acot
  1268.           sinh cosh    tanh
  1269.           csch sech    coth
  1270.           asinh acosh atanh
  1271.           acsch asech acoth
  1272.           cplx cplxe
  1273.  
  1274.  
  1275.       MMMMaaaatttthhhh::::::::TTTTrrrriiiigggg
  1276.  
  1277.       This new module provides a simpler interface to parts    of
  1278.       Math::Complex    for those who need trigonometric functions
  1279.       only for real    numbers.
  1280.  
  1281.       DDDDBBBB____FFFFiiiilllleeee
  1282.  
  1283.       There    have been quite    a few changes made to DB_File. Here
  1284.       are a    few of the highlights:
  1285.  
  1286.       +o    Fixed a handful of bugs.
  1287.  
  1288.       +o    By public demand, added support for the standard    hash
  1289.            function    _e_x_i_s_t_s().
  1290.  
  1291.       +o    Made it compatible with Berkeley    DB 1.86.
  1292.  
  1293.       +o    Made negative subscripts    work with RECNO    interface.
  1294.  
  1295.       +o    Changed the default flags from O_RDWR to    O_CREAT|O_RDWR
  1296.            and the default mode from 0640 to 0666.
  1297.  
  1298.       +o    Made DB_File automatically import the _o_p_e_n() constants
  1299.            (O_RDWR,    O_CREAT    etc.) from Fcntl, if available.
  1300.  
  1301.       +o    Updated documentation.
  1302.  
  1303.       Refer    to the HISTORY section in DB_File.pm for a complete
  1304.       list of changes. Everything after DB_File 1.01 has been
  1305.       added    since 5.003.
  1306.  
  1307.       NNNNeeeetttt::::::::PPPPiiiinnnngggg
  1308.  
  1309.       Major    rewrite    - support added    for both udp echo and real
  1310.       icmp pings.
  1311.  
  1312.  
  1313.  
  1314.  
  1315.  
  1316.  
  1317.      Page 20                        (printed 10/23/98)
  1318.  
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324.      PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))
  1325.  
  1326.  
  1327.  
  1328.       OOOObbbbjjjjeeeecccctttt----oooorrrriiiieeeennnntttteeeedddd oooovvvveeeerrrrrrrriiiiddddeeeessss ffffoooorrrr    bbbbuuuuiiiillllttttiiiinnnn    ooooppppeeeerrrraaaattttoooorrrrssss
  1329.  
  1330.       Many of the Perl builtins returning lists now    have object-
  1331.       oriented overrides.  These are:
  1332.  
  1333.           File::stat
  1334.           Net::hostent
  1335.           Net::netent
  1336.           Net::protoent
  1337.           Net::servent
  1338.           Time::gmtime
  1339.           Time::localtime
  1340.           User::grent
  1341.           User::pwent
  1342.  
  1343.       For example, you can now say
  1344.  
  1345.           use File::stat;
  1346.           use User::pwent;
  1347.           $his = (stat($filename)->st_uid == pwent($whoever)->pw_uid);
  1348.  
  1349.  
  1350.      UUUUttttiiiilllliiiittttyyyy CCCChhhhaaaannnnggggeeeessss
  1351.       ppppoooodddd2222hhhhttttmmmmllll
  1352.  
  1353.       Sends    converted HTML to standard output
  1354.            The _p_o_d_2_h_t_m_l utility included with Perl 5.004 is
  1355.            entirely    new.  By default, it sends the converted HTML
  1356.            to its standard output, instead of writing it to    a file
  1357.            like Perl 5.003's _p_o_d_2_h_t_m_l did.    Use the    --------
  1358.            oooouuuuttttffffiiiilllleeee====FFFFIIIILLLLEEEENNNNAAAAMMMMEEEE    option to write    to a file.
  1359.  
  1360.       xxxxssssuuuubbbbpppppppp
  1361.  
  1362.       void XSUBs now default to returning nothing
  1363.            Due to a    documentation/implementation bug in previous
  1364.            versions    of Perl, XSUBs with a return type of void have
  1365.            actually    been returning one value.  Usually that    value
  1366.            was the GV for the XSUB,    but sometimes it was some
  1367.            already freed or    reused value, which would sometimes
  1368.            lead to program failure.
  1369.  
  1370.            In Perl 5.004, if an XSUB is declared as    returning
  1371.            void, it    actually returns no value, i.e.    an empty list
  1372.            (though there is    a backward-compatibility exception;
  1373.            see below).  If your XSUB really    does return an SV, you
  1374.            should give it a    return type of SV *.
  1375.  
  1376.            For backward compatibility, _x_s_u_b_p_p tries    to guess
  1377.            whether a void XSUB is really void or if    it wants to
  1378.            return an SV *.    It does    so by examining    the text of
  1379.            the XSUB: if _x_s_u_b_p_p finds what looks like an assignment
  1380.  
  1381.  
  1382.  
  1383.      Page 21                        (printed 10/23/98)
  1384.  
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390.      PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))
  1391.  
  1392.  
  1393.  
  1394.            to ST(0), it assumes that the XSUB's return type    is
  1395.            really SV *.
  1396.  
  1397.      CCCC LLLLaaaannnngggguuuuaaaaggggeeee    AAAAPPPPIIII CCCChhhhaaaannnnggggeeeessss
  1398.       gv_fetchmethod and perl_call_sv
  1399.            The gv_fetchmethod function finds a method for an
  1400.            object, just like in Perl 5.003.     The GV    it returns may
  1401.            be a method cache entry.     However, in Perl 5.004,
  1402.            method cache entries are    not visible to users;
  1403.            therefore, they can no longer be    passed directly    to
  1404.            perl_call_sv.  Instead, you should use the GvCV macro
  1405.            on the GV to extract its    CV, and    pass the CV to
  1406.            perl_call_sv.
  1407.  
  1408.            The most    likely symptom of passing the result of
  1409.            gv_fetchmethod to perl_call_sv is Perl's    producing an
  1410.            "Undefined subroutine called" error on the _s_e_c_o_n_d call
  1411.            to a given method (since    there is no cache on the first
  1412.            call).
  1413.  
  1414.       perl_eval_pv
  1415.            A new function handy for    eval'ing strings of Perl code
  1416.            inside C    code.  This function returns the value from
  1417.            the eval    statement, which can be    used instead of
  1418.            fetching    globals    from the symbol    table.    See the
  1419.            _p_e_r_l_g_u_t_s    manpage, the _p_e_r_l_e_m_b_e_d manpage and the
  1420.            _p_e_r_l_c_a_l_l    manpage    for details and    examples.
  1421.  
  1422.       Extended API for manipulating    hashes
  1423.            Internal    handling of hash keys has changed.  The    old
  1424.            hashtable API is    still fully supported, and will    likely
  1425.            remain so.  The additions to the    API allow passing keys
  1426.            as SV*s,    so that    tied hashes can    be given real scalars
  1427.            as keys rather than plain strings (nontied hashes still
  1428.            can only    use strings as keys).  New extensions must use
  1429.            the new hash access functions and macros    if they    wish
  1430.            to use SV* keys.     These additions also make it feasible
  1431.            to manipulate HE*s (hash    entries), which    can be more
  1432.            efficient.  See the _p_e_r_l_g_u_t_s manpage for    details.
  1433.  
  1434.      DDDDooooccccuuuummmmeeeennnnttttaaaattttiiiioooonnnn CCCChhhhaaaannnnggggeeeessss
  1435.       Many of the base and library pods were updated.  These new
  1436.       pods are included in section 1:
  1437.  
  1438.       the _p_e_r_l_d_e_l_t_a    manpage
  1439.            This document.
  1440.  
  1441.       the _p_e_r_l_f_a_q manpage
  1442.            Frequently asked    questions.
  1443.  
  1444.       the _p_e_r_l_l_o_c_a_l_e manpage
  1445.            Locale support (internationalization and    localization).
  1446.  
  1447.  
  1448.  
  1449.      Page 22                        (printed 10/23/98)
  1450.  
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456.      PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))
  1457.  
  1458.  
  1459.  
  1460.       the _p_e_r_l_t_o_o_t manpage
  1461.            Tutorial    on Perl    OO programming.
  1462.  
  1463.       the _p_e_r_l_a_p_i_o manpage
  1464.            Perl internal IO    abstraction interface.
  1465.  
  1466.       the _p_e_r_l_m_o_d_l_i_b manpage
  1467.            Perl module library and recommended practice for    module
  1468.            creation.  Extracted from the _p_e_r_l_m_o_d manpage (which is
  1469.            much smaller as a result).
  1470.  
  1471.       the _p_e_r_l_d_e_b_u_g    manpage
  1472.            Although    not new, this has been massively updated.
  1473.  
  1474.       the _p_e_r_l_s_e_c manpage
  1475.            Although    not new, this has been massively updated.
  1476.  
  1477.      NNNNeeeewwww DDDDiiiiaaaaggggnnnnoooossssttttiiiiccccssss
  1478.       Several new conditions will trigger warnings that were
  1479.       silent before.  Some only affect certain platforms.  The
  1480.       following new    warnings and errors outline these.  These
  1481.       messages are classified as follows (listed in    increasing
  1482.       order    of desperation):
  1483.  
  1484.          (W) A warning (optional).
  1485.          (D) A deprecation (optional).
  1486.          (S) A severe warning (mandatory).
  1487.          (F) A fatal error (trappable).
  1488.          (P) An internal error you should never see    (trappable).
  1489.          (X) A very    fatal error (nontrappable).
  1490.          (A) An alien error    message    (not generated by Perl).
  1491.  
  1492.  
  1493.       "my" variable    %s masks earlier declaration in    same scope
  1494.            (W) A lexical variable has been redeclared in the same
  1495.            scope, effectively eliminating all access to the
  1496.            previous    instance.  This    is almost always a
  1497.            typographical error.  Note that the earlier variable
  1498.            will still exist    until the end of the scope or until
  1499.            all closure referents to    it are destroyed.
  1500.  
  1501.       %s argument is not a HASH element or slice
  1502.            (F) The argument    to _d_e_l_e_t_e() must be either a hash
  1503.            element,    such as
  1504.  
  1505.            $foo{$bar}
  1506.            $ref->[12]->{"susie"}
  1507.  
  1508.            or a hash slice,    such as
  1509.  
  1510.            @foo{$bar, $baz, $xyzzy}
  1511.            @{$ref->[12]}{"susie", "queue"}
  1512.  
  1513.  
  1514.  
  1515.      Page 23                        (printed 10/23/98)
  1516.  
  1517.  
  1518.  
  1519.  
  1520.  
  1521.  
  1522.      PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))
  1523.  
  1524.  
  1525.  
  1526.       Allocation too large:    %lx
  1527.            (X) You can't allocate more than    64K on an MS-DOS
  1528.            machine.
  1529.  
  1530.       Allocation too large
  1531.            (F) You can't allocate more than    2^31+"small amount"
  1532.            bytes.
  1533.  
  1534.       Applying %s to %s will act on    scalar(%s)
  1535.            (W) The pattern match (//), substitution    (s///),    and
  1536.            transliteration (tr///) operators work on scalar
  1537.            values.    If you apply one of them to an array or    a
  1538.            hash, it    will convert the array or hash to a scalar
  1539.            value --    the length of an array,    or the population info
  1540.            of a hash -- and    then work on that scalar value.     This
  1541.            is probably not what you    meant to do.  See the grep
  1542.            entry in    the _p_e_r_l_f_u_n_c manpage and the map entry in the
  1543.            _p_e_r_l_f_u_n_c    manpage    for alternatives.
  1544.  
  1545.       Attempt to free nonexistent shared string
  1546.            (P) Perl    maintains a reference counted internal table
  1547.            of strings to optimize the storage and access of    hash
  1548.            keys and    other strings.    This indicates someone tried
  1549.            to decrement the    reference count    of a string that can
  1550.            no longer be found in the table.
  1551.  
  1552.       Attempt to use reference as lvalue in    substr
  1553.            (W) You supplied    a reference as the first argument to
  1554.            _s_u_b_s_t_r()    used as    an lvalue, which is pretty strange.
  1555.            Perhaps you forgot to dereference it first.  See    the
  1556.            substr entry in the _p_e_r_l_f_u_n_c manpage.
  1557.  
  1558.       Bareword "%s"    refers to nonexistent package
  1559.            (W) You used a qualified    bareword of the    form Foo::,
  1560.            but the compiler    saw no other uses of that namespace
  1561.            before that point.  Perhaps you need to predeclare a
  1562.            package?
  1563.  
  1564.       Can't    redefine active    sort subroutine    %s
  1565.            (F) Perl    optimizes the internal handling    of sort
  1566.            subroutines and keeps pointers into them.  You tried to
  1567.            redefine    one such sort subroutine when it was currently
  1568.            active, which is    not allowed.  If you really want to do
  1569.            this, you should    write sort { &func } @x    instead    of
  1570.            sort func @x.
  1571.  
  1572.       Can't    use bareword '%s' as %s    ref while "strict refs"    in use
  1573.            (F) Only    hard references    are allowed by "strict refs".
  1574.            Symbolic    references are disallowed.  See    the _p_e_r_l_r_e_f
  1575.            manpage.
  1576.  
  1577.  
  1578.  
  1579.  
  1580.  
  1581.      Page 24                        (printed 10/23/98)
  1582.  
  1583.  
  1584.  
  1585.  
  1586.  
  1587.  
  1588.      PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))
  1589.  
  1590.  
  1591.  
  1592.       Cannot resolve method    `%s' overloading `%s' in package `%s'
  1593.            (P) Internal error trying to resolve overloading
  1594.            specified by a method name (as opposed to a subroutine
  1595.            reference).
  1596.  
  1597.       Constant subroutine %s redefined
  1598.            (S) You redefined a subroutine which had    previously
  1599.            been eligible for inlining.  See    the section on
  1600.            _C_o_n_s_t_a_n_t    _F_u_n_c_t_i_o_n_s in the _p_e_r_l_s_u_b manpage for
  1601.            commentary and workarounds.
  1602.  
  1603.       Constant subroutine %s undefined
  1604.            (S) You undefined a subroutine which had    previously
  1605.            been eligible for inlining.  See    the section on
  1606.            _C_o_n_s_t_a_n_t    _F_u_n_c_t_i_o_n_s in the _p_e_r_l_s_u_b manpage for
  1607.            commentary and workarounds.
  1608.  
  1609.       Copy method did not return a reference
  1610.            (F) The method which overloads "=" is buggy. See    the
  1611.            section on _C_o_p_y _C_o_n_s_t_r_u_c_t_o_r in the _o_v_e_r_l_o_a_d manpage.
  1612.  
  1613.       Died (F) You passed _d_i_e() an empty string (the equivalent of
  1614.            die "") or you called it    with no    args and both $@ and
  1615.            $_ were empty.
  1616.  
  1617.       Exiting pseudo-block via %s
  1618.            (W) You are exiting a rather special block construct
  1619.            (like a sort block or subroutine) by unconventional
  1620.            means, such as a    goto, or a loop    control    statement.
  1621.            See the sort entry in the _p_e_r_l_f_u_n_c manpage.
  1622.  
  1623.       Identifier too long
  1624.            (F) Perl    limits identifiers (names for variables,
  1625.            functions, etc.)    to 252 characters for simple names,
  1626.            somewhat    more for compound names    (like $A::B).  You've
  1627.            exceeded    Perl's limits.    Future versions    of Perl    are
  1628.            likely to eliminate these arbitrary limitations.
  1629.  
  1630.       Illegal character %s (carriage return)
  1631.            (F) A carriage return character was found in the    input.
  1632.            This is an error, and not a warning, because carriage
  1633.            return characters can break multi-line strings,
  1634.            including here documents    (e.g., print <<EOF;).
  1635.  
  1636.       Illegal switch in PERL5OPT: %s
  1637.            (X) The PERL5OPT    environment variable may only be used
  1638.            to set the following switches: ----[[[[DDDDIIIIMMMMUUUUddddmmmmwwww]]]].
  1639.  
  1640.       Integer overflow in hex number
  1641.            (S) The literal hex number you have specified is    too
  1642.            big for your architecture. On a 32-bit architecture the
  1643.            largest hex literal is 0xFFFFFFFF.
  1644.  
  1645.  
  1646.  
  1647.      Page 25                        (printed 10/23/98)
  1648.  
  1649.  
  1650.  
  1651.  
  1652.  
  1653.  
  1654.      PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))
  1655.  
  1656.  
  1657.  
  1658.       Integer overflow in octal number
  1659.            (S) The literal octal number you    have specified is too
  1660.            big for your architecture. On a 32-bit architecture the
  1661.            largest octal literal is    037777777777.
  1662.  
  1663.       internal error: glob failed
  1664.            (P) Something went wrong    with the external _p_r_o_g_r_a_m(s)
  1665.            used for    glob and <*.c>.     This may mean that your csh
  1666.            (C shell) is broken.  If    so, you    should change all of
  1667.            the csh-related variables in config.sh:    If you have
  1668.            tcsh, make the variables    refer to it as if it were csh
  1669.            (e.g. full_csh='/usr/bin/tcsh');    otherwise, make    them
  1670.            all empty (except that d_csh should be 'undef') so that
  1671.            Perl will think csh is missing.    In either case,    after
  1672.            editing config.sh, run ./Configure -S and rebuild Perl.
  1673.  
  1674.       Invalid conversion in    %s: "%s"
  1675.            (W) Perl    does not understand the    given format
  1676.            conversion.  See    the sprintf entry in the _p_e_r_l_f_u_n_c
  1677.            manpage.
  1678.  
  1679.       Invalid type in pack:    '%s'
  1680.            (F) The given character is not a    valid pack type.  See
  1681.            the pack    entry in the _p_e_r_l_f_u_n_c manpage.
  1682.  
  1683.       Invalid type in unpack: '%s'
  1684.            (F) The given character is not a    valid unpack type.
  1685.            See the unpack entry in the _p_e_r_l_f_u_n_c manpage.
  1686.  
  1687.       Name "%s::%s"    used only once:    possible typo
  1688.            (W) Typographical errors    often show up as unique
  1689.            variable    names.    If you had a good reason for having a
  1690.            unique name, then just mention it again somehow to
  1691.            suppress    the message (the use vars pragma is provided
  1692.            for just    this purpose).
  1693.  
  1694.       Null picture in formline
  1695.            (F) The first argument to formline must be a valid
  1696.            format picture specification.  It was found to be
  1697.            empty, which probably means you supplied    it an
  1698.            uninitialized value.  See the _p_e_r_l_f_o_r_m manpage.
  1699.  
  1700.       Offset outside string
  1701.            (F) You tried to    do a read/write/send/recv operation
  1702.            with an offset pointing outside the buffer.  This is
  1703.            difficult to imagine.  The sole exception to this is
  1704.            that sysread()ing past the buffer will extend the
  1705.            buffer and zero pad the new area.
  1706.  
  1707.       Out of memory!
  1708.            (X|F) The _m_a_l_l_o_c() function returned 0, indicating
  1709.            there was insufficient remaining    memory (or virtual
  1710.  
  1711.  
  1712.  
  1713.      Page 26                        (printed 10/23/98)
  1714.  
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720.      PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))
  1721.  
  1722.  
  1723.  
  1724.            memory) to satisfy the request.
  1725.  
  1726.            The request was judged to be small, so the possibility
  1727.            to trap it depends on the way Perl was compiled.     By
  1728.            default it is not trappable.  However, if compiled for
  1729.            this, Perl may use the contents of $^M as an emergency
  1730.            pool after _d_i_e()ing with    this message.  In this case
  1731.            the error is trappable _o_n_c_e.
  1732.  
  1733.       Out of memory    during request for %s
  1734.            (F) The _m_a_l_l_o_c()    function returned 0, indicating    there
  1735.            was insufficient    remaining memory (or virtual memory)
  1736.            to satisfy the request. However,    the request was    judged
  1737.            large enough (compile-time default is 64K), so a
  1738.            possibility to shut down    by trapping this error is
  1739.            granted.
  1740.  
  1741.       panic: frexp
  1742.            (P) The library function    _f_r_e_x_p()    failed,    making
  1743.            _p_r_i_n_t_f("%f") impossible.
  1744.  
  1745.       Possible attempt to put comments in qw() list
  1746.            (W) _q_w()    lists contain items separated by whitespace;
  1747.            as with literal strings,    comment    characters are not
  1748.            ignored,    but are    instead    treated    as literal data.  (You
  1749.            may have    used different delimiters than the parentheses
  1750.            shown here; braces are also frequently used.)
  1751.  
  1752.            You probably wrote something like this:
  1753.  
  1754.            @list = qw(
  1755.                a # a comment
  1756.                b # another comment
  1757.            );
  1758.  
  1759.            when you    should have written this:
  1760.  
  1761.            @list = qw(
  1762.                a
  1763.                b
  1764.            );
  1765.  
  1766.            If you really want comments, build your list the    old-
  1767.            fashioned way, with quotes and commas:
  1768.  
  1769.            @list = (
  1770.                'a',    # a comment
  1771.                'b',    # another comment
  1772.            );
  1773.  
  1774.  
  1775.  
  1776.  
  1777.  
  1778.  
  1779.      Page 27                        (printed 10/23/98)
  1780.  
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786.      PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))
  1787.  
  1788.  
  1789.  
  1790.       Possible attempt to separate words with commas
  1791.            (W) _q_w()    lists contain items separated by whitespace;
  1792.            therefore commas    aren't needed to separate the items.
  1793.            (You may    have used different delimiters than the
  1794.            parentheses shown here; braces are also frequently
  1795.            used.)
  1796.  
  1797.            You probably wrote something like this:
  1798.  
  1799.            qw! a, b, c !;
  1800.  
  1801.            which puts literal commas into some of the list items.
  1802.            Write it    without    commas if you don't want them to
  1803.            appear in your data:
  1804.  
  1805.            qw! a b c !;
  1806.  
  1807.  
  1808.       Scalar value @%s{%s} better written as $%s{%s}
  1809.            (W) You've used a hash slice (indicated by @) to    select
  1810.            a single    element    of a hash.  Generally it's better to
  1811.            ask for a scalar    value (indicated by $).     The
  1812.            difference is that $foo{&bar} always behaves like a
  1813.            scalar, both when assigning to it and when evaluating
  1814.            its argument, while @foo{&bar} behaves like a list when
  1815.            you assign to it, and provides a    list context to    its
  1816.            subscript, which    can do weird things if you're
  1817.            expecting only one subscript.
  1818.  
  1819.      package `%s'
  1820.       Stub found while resolving method `%s' overloading `%s' in
  1821.            (P) Overloading resolution over @ISA tree may be    broken
  1822.            by importing stubs.  Stubs should never be implicitely
  1823.            created,    but explicit calls to can may break this.
  1824.  
  1825.       Too late for "----TTTT" option
  1826.            (X) The #! line (or local equivalent) in    a Perl script
  1827.            contains    the ----TTTT option, but Perl    was not    invoked    with
  1828.            ----TTTT in its argument list.     This is an error because, by
  1829.            the time    Perl discovers a ----TTTT in a script, it's too late
  1830.            to properly taint everything from the environment.  So
  1831.            Perl gives up.
  1832.  
  1833.       untie    attempted while    %d inner references still exist
  1834.            (W) A copy of the object    returned from tie (or tied)
  1835.            was still valid when untie was called.
  1836.  
  1837.       Unrecognized character %s
  1838.            (F) The Perl parser has no idea what to do with the
  1839.            specified character in your Perl    script (or eval).
  1840.            Perhaps you tried to run    a compressed script, a binary
  1841.            program,    or a directory as a Perl program.
  1842.  
  1843.  
  1844.  
  1845.      Page 28                        (printed 10/23/98)
  1846.  
  1847.  
  1848.  
  1849.  
  1850.  
  1851.  
  1852.      PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))
  1853.  
  1854.  
  1855.  
  1856.       Unsupported function fork
  1857.            (F) Your    version    of executable does not support
  1858.            forking.
  1859.  
  1860.            Note that under some systems, like OS/2,    there may be
  1861.            different flavors of Perl executables, some of which
  1862.            may support fork, some not. Try changing    the name you
  1863.            call Perl by to perl_, perl__, and so on.
  1864.  
  1865.       Use of "$$<digit>" to    mean "${$}<digit>" is deprecated
  1866.            (D) Perl    versions before    5.004 misinterpreted any type
  1867.            marker followed by "$" and a digit.  For    example, "$$0"
  1868.            was incorrectly taken to    mean "${$}0" instead of
  1869.            "${$0}".     This bug is (mostly) fixed in Perl 5.004.
  1870.  
  1871.            However,    the developers of Perl 5.004 could not fix
  1872.            this bug    completely, because at least two widely-used
  1873.            modules depend on the old meaning of "$$0" in a string.
  1874.            So Perl 5.004 still interprets "$$<digit>" in the old
  1875.            (broken)    way inside strings; but    it generates this
  1876.            message as a warning.  And in Perl 5.005, this special
  1877.            treatment will cease.
  1878.  
  1879.       Value    of %s can be "0"; test with defined()
  1880.            (W) In a    conditional expression,    you used <HANDLE>, <*>
  1881.            (glob), each(), or readdir() as a boolean value.     Each
  1882.            of these    constructs can return a    value of "0"; that
  1883.            would make the conditional expression false, which is
  1884.            probably    not what you intended.    When using these
  1885.            constructs in conditional expressions, test their
  1886.            values with the defined operator.
  1887.  
  1888.       Variable "%s"    may be unavailable
  1889.            (W) An inner (nested) _a_n_o_n_y_m_o_u_s subroutine is inside a
  1890.            _n_a_m_e_d subroutine, and outside that is another
  1891.            subroutine; and the anonymous (innermost) subroutine is
  1892.            referencing a lexical variable defined in the outermost
  1893.            subroutine.  For    example:
  1894.  
  1895.           sub outermost    { my $a; sub middle { sub { $a } } }
  1896.  
  1897.            If the anonymous    subroutine is called or    referenced
  1898.            (directly or indirectly)    from the outermost subroutine,
  1899.            it will share the variable as you would expect.    But if
  1900.            the anonymous subroutine    is called or referenced    when
  1901.            the outermost subroutine    is not active, it will see the
  1902.            value of    the shared variable as it was before and
  1903.            during the *first* call to the outermost    subroutine,
  1904.            which is    probably not what you want.
  1905.  
  1906.            In these    circumstances, it is usually best to make the
  1907.            middle subroutine anonymous, using the sub {} syntax.
  1908.  
  1909.  
  1910.  
  1911.      Page 29                        (printed 10/23/98)
  1912.  
  1913.  
  1914.  
  1915.  
  1916.  
  1917.  
  1918.      PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))
  1919.  
  1920.  
  1921.  
  1922.            Perl has    specific support for shared variables in
  1923.            nested anonymous    subroutines; a named subroutine    in
  1924.            between interferes with this feature.
  1925.  
  1926.       Variable "%s"    will not stay shared
  1927.            (W) An inner (nested) _n_a_m_e_d subroutine is referencing a
  1928.            lexical variable    defined    in an outer subroutine.
  1929.  
  1930.            When the    inner subroutine is called, it will probably
  1931.            see the value of    the outer subroutine's variable    as it
  1932.            was before and during the *first* call to the outer
  1933.            subroutine; in this case, after the first call to the
  1934.            outer subroutine    is complete, the inner and outer
  1935.            subroutines will    no longer share    a common value for the
  1936.            variable.  In other words, the variable will no longer
  1937.            be shared.
  1938.  
  1939.            Furthermore, if the outer subroutine is anonymous and
  1940.            references a lexical variable outside itself, then the
  1941.            outer and inner subroutines will    _n_e_v_e_r share the    given
  1942.            variable.
  1943.  
  1944.            This problem can    usually    be solved by making the    inner
  1945.            subroutine anonymous, using the sub {} syntax.  When
  1946.            inner anonymous subs that reference variables in    outer
  1947.            subroutines are called or referenced, they are
  1948.            automatically rebound to    the current values of such
  1949.            variables.
  1950.  
  1951.       Warning: something's wrong
  1952.            (W) You passed _w_a_r_n() an    empty string (the equivalent
  1953.            of warn "") or you called it with no args and $_    was
  1954.            empty.
  1955.  
  1956.       Ill-formed logical name |%s| in prime_env_iter
  1957.            (W) A warning peculiar to VMS.  A logical name was
  1958.            encountered when    preparing to iterate over %ENV which
  1959.            violates    the syntactic rules governing logical names.
  1960.            Since it    cannot be translated normally, it is skipped,
  1961.            and will    not appear in %ENV.  This may be a benign
  1962.            occurrence, as some software packages might directly
  1963.            modify logical name tables and introduce    nonstandard
  1964.            names, or it may    indicate that a    logical    name table has
  1965.            been corrupted.
  1966.  
  1967.       Got an error from DosAllocMem
  1968.            (P) An error peculiar to    OS/2.  Most probably you're
  1969.            using an    obsolete version of Perl, and this should not
  1970.            happen anyway.
  1971.  
  1972.       Malformed PERLLIB_PREFIX
  1973.            (F) An error peculiar to    OS/2.  PERLLIB_PREFIX should
  1974.  
  1975.  
  1976.  
  1977.      Page 30                        (printed 10/23/98)
  1978.  
  1979.  
  1980.  
  1981.  
  1982.  
  1983.  
  1984.      PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))
  1985.  
  1986.  
  1987.  
  1988.            be of the form
  1989.  
  1990.            prefix1;prefix2
  1991.  
  1992.            or
  1993.  
  1994.            prefix1 prefix2
  1995.  
  1996.            with nonempty prefix1 and prefix2.  If prefix1 is
  1997.            indeed a    prefix of a builtin library search path,
  1998.            prefix2 is substituted.    The error may appear if
  1999.            components are not found, or are    too long.  See
  2000.            "PERLLIB_PREFIX"    in _R_E_A_D_M_E._o_s_2.
  2001.  
  2002.       PERL_SH_DIR too long
  2003.            (F) An error peculiar to    OS/2. PERL_SH_DIR is the
  2004.            directory to find the sh-shell in.  See "PERL_SH_DIR"
  2005.            in _R_E_A_D_M_E._o_s_2.
  2006.  
  2007.       Process terminated by    SIG%s
  2008.            (W) This    is a standard message issued by    OS/2
  2009.            applications, while *nix    applications die in silence.
  2010.            It is considered    a feature of the OS/2 port.  One can
  2011.            easily disable this by appropriate sighandlers, see the
  2012.            section on _S_i_g_n_a_l_s in the _p_e_r_l_i_p_c manpage.  See also
  2013.            "Process    terminated by SIGTERM/SIGINT" in _R_E_A_D_M_E._o_s_2.
  2014.  
  2015.      BBBBUUUUGGGGSSSS
  2016.       If you find what you think is    a bug, you might check the
  2017.       headers of recently posted articles in the
  2018.       comp.lang.perl.misc newsgroup.  There    may also be
  2019.       information at http://www.perl.com/perl/, the    Perl Home
  2020.       Page.
  2021.  
  2022.       If you believe you have an unreported    bug, please run    the
  2023.       ppppeeeerrrrllllbbbbuuuugggg program included with    your release.  Make sure you
  2024.       trim your bug    down to    a tiny but sufficient test case.  Your
  2025.       bug report, along with the output of perl -V,    will be    sent
  2026.       off to <_p_e_r_l_b_u_g@_p_e_r_l._c_o_m> to be analysed by the Perl porting
  2027.       team.
  2028.  
  2029.      SSSSEEEEEEEE AAAALLLLSSSSOOOO
  2030.       The _C_h_a_n_g_e_s file for exhaustive details on what changed.
  2031.  
  2032.       The _I_N_S_T_A_L_L file for how to build Perl.  This    file has been
  2033.       significantly    updated    for 5.004, so even veteran users
  2034.       should look through it.
  2035.  
  2036.       The _R_E_A_D_M_E file for general stuff.
  2037.  
  2038.       The _C_o_p_y_i_n_g file for copyright information.
  2039.  
  2040.  
  2041.  
  2042.  
  2043.      Page 31                        (printed 10/23/98)
  2044.  
  2045.  
  2046.  
  2047.  
  2048.  
  2049.  
  2050.      PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))
  2051.  
  2052.  
  2053.  
  2054.      HHHHIIIISSSSTTTTOOOORRRRYYYY
  2055.       Constructed by Tom Christiansen, grabbing material with
  2056.       permission from innumerable contributors, with kibitzing by
  2057.       more than a few Perl porters.
  2058.  
  2059.       Last update: Wed May 14 11:14:09 EDT 1997
  2060.  
  2061.  
  2062.  
  2063.  
  2064.  
  2065.  
  2066.  
  2067.  
  2068.  
  2069.  
  2070.  
  2071.  
  2072.  
  2073.  
  2074.  
  2075.  
  2076.  
  2077.  
  2078.  
  2079.  
  2080.  
  2081.  
  2082.  
  2083.  
  2084.  
  2085.  
  2086.  
  2087.  
  2088.  
  2089.  
  2090.  
  2091.  
  2092.  
  2093.  
  2094.  
  2095.  
  2096.  
  2097.  
  2098.  
  2099.  
  2100.  
  2101.  
  2102.  
  2103.  
  2104.  
  2105.  
  2106.  
  2107.  
  2108.  
  2109.      Page 32                        (printed 10/23/98)
  2110.  
  2111.  
  2112.  
  2113.  
  2114.  
  2115.  
  2116.      PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLL5555000000004444DDDDEEEELLLLTTTTAAAA((((1111))))
  2117.  
  2118.  
  2119.  
  2120.  
  2121.  
  2122.  
  2123.  
  2124.  
  2125.  
  2126.  
  2127.  
  2128.  
  2129.  
  2130.  
  2131.  
  2132.  
  2133.  
  2134.  
  2135.  
  2136.  
  2137.  
  2138.  
  2139.  
  2140.  
  2141.  
  2142.  
  2143.  
  2144.  
  2145.  
  2146.  
  2147.  
  2148.  
  2149.  
  2150.  
  2151.  
  2152.  
  2153.  
  2154.  
  2155.  
  2156.  
  2157.  
  2158.  
  2159.  
  2160.  
  2161.  
  2162.  
  2163.  
  2164.  
  2165.  
  2166.  
  2167.  
  2168.  
  2169.  
  2170.  
  2171.  
  2172.      Page 33                        (printed 10/23/98)
  2173.  
  2174.  
  2175.  
  2176.  
  2177.  
  2178.  
  2179.